<?php

namespace App\Models;

class Admin extends Model
{
	private static $_obj;

	public static function getInstance()
	{
		if (!self::$_obj instanceof self) {
			self::$_obj = new self;
		}
		return self::$_obj;
	}

	/**
	 * 关联到模型的数据表
	 * 默认规则是模型类名的复数作为与其对应的表名
	 * @var  string
	 * @author  朱旭 
	 */
	protected $table = 'admin';

	/**
	 * 设置主键
	 * @author  朱旭
	 * @var string
	 */
	public $primaryKey = 'id';

	/**
	 * 表名模型是否应该被打上时间戳
	 * @var  bool
	 * @author 朱旭
	 */
	public $timestamps = false;

	/**
	 * 模型日期列的存储格式
	 * @author  朱旭
	 * @var  string
	 */
	// protected $dateFormat = 'U';
	
	/**
	 * 避免转换时间戳为时间字符串
	 * @param  dateTime $value int
	 * @return dateTime     int
	 */
	public function fromDateTime($value){
		return strtotime(parent::fromDateTime($value));
	}

	//自定义用于存储时间戳的字段名称,可以在模型中设置CREATED_AT 和 UPDATED_AT 常量
	//const CREATED_AT = 'regtime';
	//const UPDATED_AT = '';
	
	/**
	 * 从数据库获取的时间为时间戳格式
	 * @return string
	 */
	public function getDateFormat()
	{
		return 'U';
	}

	/**
	 * 批量赋值黑名单
	 * @var array
	 */
	protected $guarded = [];
	
	/**
	 * 批量赋值白名单
	 * @var array
	 */
	protected $fillable = [];

	/**
	 * 查询管理员信息
	 * int id 唯一标识
	 * @author 朱旭
	 */
	public function getAdministratorData($id)
	{
		$data = self::find($id)->toArray();
		return $data;
	}

	/**
	 * 更改管理员状态
	 * @param int id 管理员唯一标识
	 * @param in(1,2) status 状态
	 */
	public function saveAdministratorStatus($id, $status)
	{
		$result = self::find($id)->update(['status'=>$status]);
		return $result;
	}

	public function getAdministratorDataField($id)
	{
		$data = self::select('id', 'level', 'status', 'tel', 'email', 'remarks')->find($id)->toArray();
		return $data;
	}
}